home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Visual Database / Visual Foxpro 6.0 (Ent. Edition) / Vf6ent Extractor.EXE / TOOLS / XSOURCE / XSOURCE.ZIP / vfpsource / wizards / Wzpivot / pivotwiz.prg < prev    next >
Encoding:
Text File  |  1998-05-01  |  2.9 KB  |  119 lines

  1. #INCLUDE "PIVOT.H"
  2.  
  3. DEFINE CLASS PivotEngine AS WizEngineAll
  4.  
  5.     cWizClass = "ole"            &&wizard class    (e.g., report)
  6.     cWizName  = "pivotwizard"    &&wizard name or class (e.g., Group/Total report)
  7.     
  8.     iHelpContextID = N_HELPCONTEXT_ID    &&help id
  9.  
  10.     cPivFldData = ""            &&Pivot data field
  11.     cPivFldPage = ""            &&Pivot page field
  12.     cPivFldRow = ""                &&Pivot row field
  13.     cPivFldCol = ""                &&Pivot column field
  14.  
  15.     oPiv        = .NULL.        && the PivotTable object
  16.  
  17.     lHasColumnTotals = .T.        &&Column totals
  18.     lHasRowTotals = .T.            &&Row totals
  19.     lIsNumeric = .F.            &&numeric data type
  20.     
  21.     nCurrentOS = 0                &&operating system
  22.     
  23.     *----------------------------------
  24.     PROCEDURE Init2
  25.     *----------------------------------
  26.  
  27.         THIS.GetOS()
  28.         IF THIS.nCurrentOS > 4  &&fail
  29.             RETURN .F.
  30.         ENDIF
  31.  
  32.         *- create the PivotTable object
  33.         SET CLASS TO PivTable ADDITIVE
  34.         THIS.oPiv = CREATEOBJECT("PivotTable")
  35.         
  36.         IF TYPE("THIS.oPiv") # 'O'
  37.             THIS.Alert(E_NOPIVOTTBL_LOC)
  38.             RETURN .F.
  39.         ENDIF
  40.         
  41.         *- OK, so let's proceed
  42.         RETURN .T.
  43.     ENDPROC
  44.     
  45.     *----------------------------------
  46.     PROCEDURE Destroy
  47.     *----------------------------------
  48.         RELEASE CLASSLIB PivTable
  49.         
  50.         WizEngineAll::Destroy
  51.         
  52.     ENDPROC
  53.     
  54.     
  55.     *----------------------------------
  56.     PROCEDURE GetSaveFile
  57.     *----------------------------------
  58.         PARAMETER cCurAlias
  59.         IF THIS.nWizAction # 2    &&no Form created -- output to XL
  60.             RETURN .T.
  61.         ENDIF
  62.         LOCAL getfname
  63.         THIS.GetOS()
  64.  
  65.         DO CASE
  66.         CASE THIS.nCurrentOS = OS_W32S AND ;
  67.           CURSORGETPROP("sourcetype",m.cCurAlias) = 3
  68.             * use short DOS name for Win32S
  69.             getfname = THIS.ForceExt(DBF(m.cCurAlias),"SCX")
  70.         CASE THIS.nCurrentOS = OS_W32S
  71.             getfname = LEFT(m.cCurAlias,8) + ".SCX"
  72.         OTHERWISE
  73.             getfname = THIS.ForceExt(cursorgetprop("sourcename",m.cCurAlias),"SCX")
  74.         ENDCASE
  75.         
  76.         RETURN THIS.SaveOutFile(C_SAVEPROMPT_LOC,m.getfname,"SCX")  &&use canceled
  77.     ENDPROC
  78.  
  79.     *----------------------------------
  80.     PROCEDURE MakeOutput
  81.     *----------------------------------
  82.  
  83.         THIS.cWizAlias = ALIAS()
  84.  
  85.         THIS.oPiv.cAppTitle = ALERTTITLE_LOC        && the name of our app
  86.         *- Assure we have some default output action
  87.         IF TYPE('THIS.nWizAction') # 'N' 
  88.             THIS.oPiv.nAction = 1
  89.         ELSE
  90.             THIS.oPiv.nAction = THIS.nWizAction
  91.         ENDIF
  92.         
  93.         THIS.oPiv.cAlias = THIS.cWizAlias
  94.         THIS.oPiv.cOldMessage = SET("MESSAGE",1)
  95.         THIS.oPiv.cDBCTable = THIS.cDBCTable
  96.         THIS.oPiv.cDBCName = THIS.cDBCName
  97.         
  98.         THIS.oPiv.cPivFldRow = THIS.cPivFldRow
  99.         THIS.oPiv.cPivFldCol = THIS.cPivFldCol
  100.         THIS.oPiv.cPivFldData = THIS.cPivFldData
  101.         THIS.oPiv.cPivFldPage = THIS.cPivFldPage
  102.         
  103.         THIS.oPiv.lHasColumnTotals = THIS.lHasColumnTotals
  104.         THIS.oPiv.lHasRowTotals = THIS.lHasRowTotals
  105.         
  106.         THIS.oPiv.cOutFile = THIS.cOutFile
  107.         THIS.oPiv.cFormSCX = "excel1"
  108.         THIS.oPiv.lHasNoTask = THIS.lHasNoTask
  109.         
  110.         =ACOPY(THIS.aWizFields, THIS.oPiv.aAutoFields)
  111.         =ACOPY(THIS.aWizFList, THIS.oPiv.aFldList)
  112.  
  113.         THIS.oPiv.MakeOutput
  114.  
  115.         RETURN
  116.  
  117.     ENDPROC
  118.  
  119. ENDDEFINE